package com.ruoyi.system.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.system.domain.LanguageValue;
import com.ruoyi.system.domain.params.LanguageValueParams;
import com.ruoyi.system.domain.vo.LanguageTypeVo;
import com.ruoyi.system.domain.vo.LanguageValueVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 语言键值Mapper接口
 *
 * @author huyafang
 * @date 2023-03-06
 */
@Mapper
@Repository
public interface LanguageValueMapper  {

    Integer updateLanguageKey(@Param("oldCode") String oldCode, @Param("newCode") String newCode, @Param("updateBy") String updateBy);

    /**
     * 批量添加语言键值
     *
     * @param list     语言键集合
     * @param createBy 创建者
     * @return
     */
    int insertList(@Param("list") List<LanguageValueVo> list, @Param("createBy") String createBy, @Param("typeCode") String typeCode);

    IPage<LanguageValueVo> queryList(Page<LanguageValueVo> page, @Param("condition") LanguageValueParams languageValueParams);

    LanguageValue getById(Long id);

    LanguageValue save(LanguageValue languageValue);

    int update(LanguageValue languageValue);

    int deleteByCodes(String[] keys);

    /**
     * 批量修改语言键值
     *
     * @param list     语言键集合
     * @param updateBy 修改者
     * @return
     */
    int updateByList(@Param("list") List<LanguageValueVo> list, @Param("updateBy") String updateBy);
}
